From 75fff482b91691ca465d8f343ce018955fb212fe Mon Sep 17 00:00:00 2001 From: Guillaume Laurent Date: Sat, 7 Nov 1998 00:33:22 +0000 Subject: [PATCH] Added warning about callback on items --- gtk/gtkitemfactory.c | 8 +++++++- gtk/testgtk.c | 10 +++++----- tests/testgtk.c | 10 +++++----- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/gtk/gtkitemfactory.c b/gtk/gtkitemfactory.c index 7f9b6a5cf0..8639cb46a8 100644 --- a/gtk/gtkitemfactory.c +++ b/gtk/gtkitemfactory.c @@ -1087,6 +1087,10 @@ gtk_item_factory_create_item (GtkItemFactory *ifactory, { GtkAccelGroup *menu_group; + if (entry->callback) + g_warning ("gtk_item_factory_create_item(): Can't specify a callback on a branch: \"%s\"", + entry->path); + menu_group = gtk_accel_group_new (); if (type_id == quark_type_last_branch) @@ -1103,7 +1107,9 @@ gtk_item_factory_create_item (GtkItemFactory *ifactory, gtk_item_factory_add_item (ifactory, path, entry->accelerator, - entry->callback, entry->callback_action, callback_data, + (type_id == quark_type_branch || + type_id == quark_type_last_branch) ? NULL : entry->callback, + entry->callback_action, callback_data, callback_type, item_type_path, widget); diff --git a/gtk/testgtk.c b/gtk/testgtk.c index e16ee72b65..cbecece686 100644 --- a/gtk/testgtk.c +++ b/gtk/testgtk.c @@ -2245,7 +2245,7 @@ gtk_ifactory_cb (gpointer callback_data, static GtkItemFactoryEntry menu_items[] = { - { "/_File", NULL, gtk_ifactory_cb, 0, "" }, + { "/_File", NULL, 0, 0, "" }, { "/File/tearoff1", NULL, gtk_ifactory_cb, 0, "" }, { "/File/_New", "N", gtk_ifactory_cb, 0 }, { "/File/_Open", "O", gtk_ifactory_cb, 0 }, @@ -2254,17 +2254,17 @@ static GtkItemFactoryEntry menu_items[] = { "/File/sep1", NULL, gtk_ifactory_cb, 0, "" }, { "/File/_Quit", "Q", gtk_ifactory_cb, 0 }, - { "/_Preferences", NULL, gtk_ifactory_cb, 0, "" }, - { "/_Preferences/_Color", NULL, gtk_ifactory_cb, 0, "" }, + { "/_Preferences", NULL, 0, 0, "" }, + { "/_Preferences/_Color", NULL, 0, 0, "" }, { "/_Preferences/Color/_Red", NULL, gtk_ifactory_cb, 0, "" }, { "/_Preferences/Color/_Green", NULL, gtk_ifactory_cb, 0, "" }, { "/_Preferences/Color/_Blue", NULL, gtk_ifactory_cb, 0, "" }, - { "/_Preferences/_Shape", NULL, gtk_ifactory_cb, 0, "" }, + { "/_Preferences/_Shape", NULL, 0, 0, "" }, { "/_Preferences/Shape/_Square", NULL, gtk_ifactory_cb, 0, "" }, { "/_Preferences/Shape/_Rectangle", NULL, gtk_ifactory_cb, 0, "" }, { "/_Preferences/Shape/_Oval", NULL, gtk_ifactory_cb, 0, "" }, - { "/_Help", NULL, gtk_ifactory_cb, 0, "" }, + { "/_Help", NULL, 0, 0, "" }, { "/Help/_About", NULL, gtk_ifactory_cb, 0 }, }; diff --git a/tests/testgtk.c b/tests/testgtk.c index e16ee72b65..cbecece686 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -2245,7 +2245,7 @@ gtk_ifactory_cb (gpointer callback_data, static GtkItemFactoryEntry menu_items[] = { - { "/_File", NULL, gtk_ifactory_cb, 0, "" }, + { "/_File", NULL, 0, 0, "" }, { "/File/tearoff1", NULL, gtk_ifactory_cb, 0, "" }, { "/File/_New", "N", gtk_ifactory_cb, 0 }, { "/File/_Open", "O", gtk_ifactory_cb, 0 }, @@ -2254,17 +2254,17 @@ static GtkItemFactoryEntry menu_items[] = { "/File/sep1", NULL, gtk_ifactory_cb, 0, "" }, { "/File/_Quit", "Q", gtk_ifactory_cb, 0 }, - { "/_Preferences", NULL, gtk_ifactory_cb, 0, "" }, - { "/_Preferences/_Color", NULL, gtk_ifactory_cb, 0, "" }, + { "/_Preferences", NULL, 0, 0, "" }, + { "/_Preferences/_Color", NULL, 0, 0, "" }, { "/_Preferences/Color/_Red", NULL, gtk_ifactory_cb, 0, "" }, { "/_Preferences/Color/_Green", NULL, gtk_ifactory_cb, 0, "" }, { "/_Preferences/Color/_Blue", NULL, gtk_ifactory_cb, 0, "" }, - { "/_Preferences/_Shape", NULL, gtk_ifactory_cb, 0, "" }, + { "/_Preferences/_Shape", NULL, 0, 0, "" }, { "/_Preferences/Shape/_Square", NULL, gtk_ifactory_cb, 0, "" }, { "/_Preferences/Shape/_Rectangle", NULL, gtk_ifactory_cb, 0, "" }, { "/_Preferences/Shape/_Oval", NULL, gtk_ifactory_cb, 0, "" }, - { "/_Help", NULL, gtk_ifactory_cb, 0, "" }, + { "/_Help", NULL, 0, 0, "" }, { "/Help/_About", NULL, gtk_ifactory_cb, 0 }, }; -- 2.30.2